Configuration sources (e.g., remote servers, remote agents) external to a computing device can configure features on the computing device. The features configured by the configuration sources can include policies, configuration profiles, resources (e.g., applications), and the like. For instance, features enforced on the computing device can be controlled to secure and manage the computing device. Configuration of the features by the configuration sources can be interdependent; yet, the features can be independently managed. By way of illustration, a first feature may be configured only after a second feature has been configured on the computing device, where the first and second features can be independently managed (e.g., a first configuration source can configure the first feature and a second configuration source can configure the second feature).
Configuration sources conventionally can manage the dependencies between features. For instance, configuration sources can sequence communications with a computing device in such a way that the computing device is in a desired state. According to an illustration where a configuration source negotiates dependencies between features to configure a data protection feature on a computing device, the configuration source can initially install a certificate on the computing device. The configuration source can wait for the installation of the certificate to complete, and once the certificate is installed, the configuration source can install a virtual private network (VPN) profile on the computing device. Again, the configuration source can wait for the VPN profile installation to complete, and then the data protection feature can be configured by the configuration source. However, connectivity between configuration sources and a computing device may be unreliable, so it may be difficult for the configuration sources to synchronize with the computing device and manage configuration state transitions. Moreover, it may be difficult to coordinate configuration in such a way to guarantee correct state, since enforcement and/or implementation of configuration can be dictated by components on the computing device.